這裡將利用教程所提供的"Treasure Hunter Game"來直接學習PixiJS中的語法。"Treasure Hunter Game"的程式碼 ---> Click Here !
系統提示:「Life can only be understood backwards, but it must be lived forwards.--Soren Kierkegaard」,PixiJS青銅玩家還卡關於自定義function階段,僅獲得經驗提昇等級。
randomInt()
函數的用途,在於當我們給予一組最小數及最大數,此函數會回傳一個在最小數與最大數之間的一個隨機整數。
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
這次的randomInt()
函數特別短,也算是滿經典的,基本上如果想寫出「會回傳一個在最小數與最大數之間的一個隨機整數」這樣功能的函數,都是這樣的寫法。
randomInt(min, max)
可以接受兩個參數,第一個參數放置最小值、第二個參數放置最大值。
而其中運用到了兩次Math
物件,在【LV. 21】時的hitTestRectangle()
中也有使用到Math
物件,他是使用其中的abs
方法。
至於這裡,則是使用到了Math
物件中的.random()
以及floor()
:
1. Math.random():
本來只是想先搭上前往MDN的電梯,看看他的功能,結果發現原來MDN有附上「會回傳一個在最小數與最大數之間的一個隨機整數」這樣功能的寫法(☉д⊙)所以有點猶豫該不該再寫點什麼...
不過先對Math.random()
來個簡單的總結:他會回傳[0, 1)間的隨機小數(i.e. 包含0不包含1)。
2. Math.floor():
一樣先到MDN走走逛逛,一樣一段簡單的總結:他會回傳小於等於所給數字的最大整數。
***
雖然前面提到MDN上的Math.random()頁面就有附上一樣的寫法,但還是決定來研究看看這樣寫法的用意。
首先,我們的目的範圍是「某最小值到某最大值」之間,但是Math.random()
的範圍是「[0, 1)」之間。
以下稱某最小值為min、最大值為max。
第一,0乘上任何數字還是0,於是我們最先可以調整的便是他的最大範圍。我們知道min到max之間(包含min及max)總共會有「max-min+1」個數字,將「max-min+1」乘上Math.random()
,就代表他的範圍從「[0, 1)」之間,變成「[0,max-min+1)」之間。
Math.random(); //範圍在[0, 1)間
Math.random() * (max - min + 1) //範圍在[0,max-min+1)間
第二,不過要記得Math.random()
回傳的是「小數」,因此先利用Math.floor()
將範圍內取出的值變為整數。
Math.floor(Math.random() * (max - min + 1))
//從範圍[0,max-min+1)間取出一值,並將其改變為整數
第三,但我們要的範圍並不是從0開始,我們想從min值開始,於是將min給加上去,此時的範圍更正為「[min,max+1)」之間。
Math.floor(Math.random() * (max - min + 1)) + min
//範圍在[min,max+1)間
如此一來,我們的範圍就會在min以及max之間了!(包含min及max)
今天的自定義函數內容較少,原先也有考慮進入下一個自定義函數keyboard()
,但是他的內容又過多感覺來不及今天完成,所以就放到明天吧!